package ar.edu.ufasta.presupuestos.servicios.web.netpacks;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.StringTokenizer;

import ar.edu.ufasta.presupuestos.servicios.web.Constantes;

public class InfoClienteResponse extends ResponsePack {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1376094364204139121L;
	private String nombreCompleto;
	private String direccion;
	private	int codigoPostal;
	private String provincia;
	private String telefono;
	private String celular;
	private String email;
	private Date fechaCreacion;
	
	/**
	 * @return the nombreCompleto
	 */
	public String getNombreCompleto() {
		return nombreCompleto;
	}

	/**
	 * @param nombreCompleto the nombreCompleto to set
	 */
	public void setNombreCompleto(String nombreCompleto) {
		this.nombreCompleto = nombreCompleto;
	}

	/**
	 * @return the direccion
	 */
	public String getDireccion() {
		return direccion;
	}

	/**
	 * @param direccion the direccion to set
	 */
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	/**
	 * @return the codigoPostal
	 */
	public int getCodigoPostal() {
		return codigoPostal;
	}

	/**
	 * @param codigoPostal the codigoPostal to set
	 */
	public void setCodigoPostal(int codigoPostal) {
		this.codigoPostal = codigoPostal;
	}

	/**
	 * @return the provincia
	 */
	public String getProvincia() {
		return provincia;
	}

	/**
	 * @param provincia the provincia to set
	 */
	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	/**
	 * @return the telefono
	 */
	public String getTelefono() {
		return telefono;
	}

	/**
	 * @param telefono the telefono to set
	 */
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	/**
	 * @return the celular
	 */
	public String getCelular() {
		return celular;
	}

	/**
	 * @param celular the celular to set
	 */
	public void setCelular(String celular) {
		this.celular = celular;
	}

	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * @return the fechaCreacion
	 */
	public Date getFechaCreacion() {
		return fechaCreacion;
	}

	/**
	 * @param fechaCreacion the fechaCreacion to set
	 */
	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	@Override
	public void codificarTrama() {
		trama = "";
		trama = trama + protocol + ";";
		trama = trama + systemCode + ";";
		trama = trama + resultCode + ";";
		trama = trama + nombreCompleto + ";";
		trama = trama + direccion + ";";
		trama = trama + Integer.toString(codigoPostal) + ";";
		trama = trama + provincia + ";";
		trama = trama + telefono + ";";
		trama = trama + celular + ";";
		trama = trama + email + ";";
		SimpleDateFormat simple = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss", Locale.US);
		trama = trama + simple.format(fechaCreacion) + ";";
		int checksum = trama.length()+1;
		trama = trama + Integer.toString(checksum) + ";";
		trama = trama + "\n";	
	}

	@Override
	public void decodificarTrama() {
		StringTokenizer st = new StringTokenizer(trama,";");
		st.countTokens();
		try {
			protocol = Integer.valueOf(st.nextToken());
			systemCode = Integer.valueOf(st.nextToken());
			resultCode = Integer.valueOf(st.nextToken());
			nombreCompleto = st.nextToken();
			direccion = st.nextToken();
			codigoPostal = Integer.valueOf(st.nextToken());
			provincia = st.nextToken();
			telefono = st.nextToken();
			celular = st.nextToken();
			email = st.nextToken();
			SimpleDateFormat simpleDate = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss", Locale.US);
			Date d = simpleDate.parse(st.nextToken());
			fechaCreacion = d;
		} catch (Exception e) {
			protocol = Constantes.PROTOCOL_100;
			systemCode = Constantes.SYSTEM_CODE;
			resultCode = Constantes.ERROR_OPERATIONCODE;
		}	
	}

}
